console.log('你好ts')

// function getData(){

// }
var flag:boolean = false
console.log(flag)
var str:string = '你好ts'


//  定义数组1
var arr:number[] = [1,123,1234,56,54]
console.log(arr)

//  定义数组2
var arr:Array<number> = [1,2,2,2]

//  元祖类型(tuple为数组中的每一个元素指定类型)
var arrTuple:[number,string] = [12,'this is tuple']
console.log(arrTuple)

//  枚举类型
enum Flag {success=1,error=0}
var c:Flag = Flag.success
console.log(c)

// 枚举类型(不赋值)
enum Color {blue,red,orange}

var c1:Color = Color.blue

console.log(c1) //  标识符没有赋值 值为下标


//  any类型

var box:any = document.getElementById('box')

box.style.color = 'red'

// void类型(方法)
function getData1():void{
    window.alert('void')
}
getData1()

function getData2():number{
    return 123
}
var num:number = getData2()

console.log(num)

//  never类型 never类型表示的是那些永不存在的值的类型

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {

    }
}
